<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Produto_model extends CI_Model {
	
	public function get_all(){
		$singem = $this->load->database('singem', TRUE);
		$singem->order_by("Descricao", "asc");
		
		return $singem->get('Cad_Produtos')->result();
	}
	
	public function get_nome_produto_by_id($id=NULL) {
		if ($id != NULL){
			$singem = $this->load->database('singem', TRUE);
			$singem->select('Descricao');
			$singem->where('Produto', $id);
			$singem->limit(1);
			$singem->order_by("descricao", "ASC");
				
			return $singem->get('Cad_Produtos')->row();
		} else {
			return false;
		}
	}
	
	public function get_byid($id=NULL){
		if ($id != NULL){
			$singem = $this->load->database('singem', TRUE);
			$singem->where('Produto', $id);
			$singem->limit(1);
			$singem->order_by("descricao", "asc");
			
			return $singem->get('Cad_Produtos')->row();
		} else {
			return false;
		}
	}
	
	public function get_all_grupos(){
		$singem = $this->load->database('singem', TRUE);
		$singem->select("Grupo, Descricao");
		$singem->order_by("Grupo", "asc");
		
		return $singem->get('Cad_Grupos')->result();
	}
	
	public function get_all_produtos_by_grupo($grupo=NULL){
		
		$grupos = array($grupo, '0017');
// 		echo "<pre>";
// 		print_r($grupos);
// 		exit;
		if ($grupo != NULL){
			$singem = $this->load->database('singem', TRUE);
			$singem->where_in('Grupo', $grupos);
			//$singem->where('Grupo', '0017');
			$singem->order_by("Descricao", "asc");
				
			return $singem->get('Cad_Produtos')->result();
		} else {
			return FALSE;
		}
	}
	
	public function get_byid_tabela_preco($id=NULL, $tabela_preco=NULL){
		if ($id != NULL){
			$singem = $this->load->database('singem', TRUE);

			if ($tabela_preco == '00'){
				//$singem->select('produto, descricao, unidade, preco_tabela as preco');
				$query = $singem->query("SELECT
											produto, descricao, unidade, preco_tabela AS preco,
											ipi,
											(ipi/100)+1 as ipi_formatado, 
											preco_tabela * ((ipi/100)+1) as preco_ipi,
											(SELECT SUM(Quantidade)
												FROM Estoque E
												WHERE E.Produto = P1.Produto
												AND Cancelado = 'F') AS EstoqueAtual
										FROM Cad_Produtos P1
										WHERE Produto = $id
										ORDER BY descricao ASC
									");
			} else {
				//$singem->select('produto, descricao, unidade, precotabela'.$tabela_preco.' as preco');
				$sql = "SELECT
											produto, descricao, unidade, precotabela".$tabela_preco."  AS preco,
											ipi,
											(ipi/100)+1 as ipi_formatado, 
											precotabela".$tabela_preco." * ((ipi/100)+1) as preco_ipi,
											(SELECT SUM(Quantidade)
											FROM Estoque E
											WHERE E.Produto = P1.Produto
											AND Cancelado = 'F') AS EstoqueAtual
										FROM Cad_Produtos P1
										WHERE Produto = $id
										ORDER BY descricao ASC
									";
				$query = $singem->query($sql);
			}
			//$singem->where('Produto', $id);
			//$singem->limit(1);
				
			//return $singem->get('Cad_Produtos')->row();
			return $query->row();
		} else {
			return false;
		}
	}
	
	public function get_all_produtos_select_campos($tabela_preco=NULL){
		echo "Ops! Algo inesperado aconteceu. Tire um print dessa tela e envie ao Administrador para que o problema seja corrigido. Obrigado!";
		exit;
	}
	
	public function get_all_produtos_by_precoTabela_and_grupo_select_campos($tabela_preco=NULL, $codGrupo=NULL){
		if ($tabela_preco != NULL && $codGrupo != NULL){
			$singem = $this->load->database('singem', TRUE);
			
			if ($codGrupo == '0015' || $codGrupo == '0016'){
				$sqlGrupo = "WHERE Grupo IN ('0017', '$codGrupo')"; 
			} else {
				$sqlGrupo = "WHERE Grupo LIKE '$codGrupo'";
			}
			
			//WHERE Grupo LIKE '$codGrupo'
			//grupo in ('0017',<grupo vendedor>)
			
			if ($tabela_preco == '00'){
				//$singem->select('produto, descricao, unidade, preco_tabela as preco');
				$sql = "SELECT 
							produto, descricao, grupo, unidade, preco_tabela AS preco,
							ipi,
							(ipi/100)+1 as ipi_formatado, 
							preco_tabela * ((ipi/100)+1) as preco_ipi,
							(SELECT SUM(Quantidade) 
								FROM Estoque E 
								WHERE E.Produto = P1.Produto 
								AND Cancelado = 'F') AS EstoqueAtual
						FROM Cad_Produtos P1 
						".$sqlGrupo."
						ORDER BY descricao ASC";
			} else {
				//$singem->select('produto, descricao, unidade, precotabela'.$tabela_preco.' as preco');
				$sql = "SELECT 
							produto, descricao, grupo, unidade, precotabela".$tabela_preco."  AS preco,
							ipi, 
							(ipi/100)+1 as ipi_formatado, 
							precotabela".$tabela_preco." * ((ipi/100)+1) as preco_ipi,
							(SELECT SUM(Quantidade) 
								FROM Estoque E 
								WHERE E.Produto = P1.Produto 
								AND Cancelado = 'F') AS EstoqueAtual
						FROM Cad_Produtos P1 
						".$sqlGrupo."
						ORDER BY descricao ASC";
				
			}
// 			echo $sql;
// 			exit;
			$query = $singem->query($sql);
			return $query->result();
		} else {
			return FALSE;			
		}
	}
	
	public function get_top10(){
		$singem = $this->load->database('singem', TRUE);
		$singem->where('Custo >',10);
		$singem->limit(6);
		$singem->order_by("descricao", "asc");
		
		return $singem->get('Cad_Produtos')->result();
	}
	
	public function do_adicionar($dados=NULL){
		if ($dados != NULL){
			$alegroPedidos = $this->load->database('alegro', TRUE);
			$alegroPedidos->insert('tbl_produto', $dados);
			return TRUE;
		} else {
			return FALSE;
		}
	}
	
	public function alterarDescricaoProduto($produto=NULL, $campo=NULL){
		if ($produto != NULL && $campo != NULL){
			
// 			echo "<pre>";
// 			print_r($produto);
// 			//exit;
			
			$alegroPedidos = $this->load->database('alegro', TRUE);
			$campo = array($campo => $produto->$campo); // Altera o valor de qualquer campo

			$alegroPedidos->where('pro_codigo', $produto->pro_codigo);
			$alegroPedidos->where('ped_codigo', $produto->ped_codigo);
			
			$alegroPedidos->update('tbl_produto', $campo);
			return TRUE;
		} else {
			return FALSE;
		}
	}
	
	public function do_excluir($produto=NULL){
		if ($dados != NULL){
			$alegroPedidos = $this->load->database('alegro', TRUE);
			$alegroPedidos->where('pro_codigo', $produto->pro_codigo);
			$alegroPedidos->where('ped_codigo', $produto->ped_codigo);
			$alegroPedidos->delete('tbl_produto');
			return TRUE;
		} else {
			return FALSE;
		}
	}

}